Designing Hardware that Supports Cycle-Accurate Deterministic Replay
نویسندگان
چکیده
Most computer hardware today is nondeterministic, meaning that two executions of a program will not be cycle-for-cycle identical at the microarchitectural level even if they start from the same microarchitectural state. Due to uninitialized state elements, I/O, and timing variations on high-speed buses, the microarchitectural states of the two executions will evolve differently. Such nondeterminism complicates system verification and makes hardware faults detected during bringup more difficult to reproduce and analyze. Consequently, we believe that board-level computer hardware should be designed in a way that supports cycle-accurate deterministic replay. In this paper, we outline the hardware required to provide this capability. We argue that the resulting hardware complexity is minimal, providing a net savings in bringup time and cost. We also show that potential applications of deterministic hardware extend far beyond hardware verification.
منابع مشابه
A Survey in Deterministic Replaying Approaches in Multiprocessors
most multithread executions acts nondeterministic while execute on multiprocessor systems. Recording nondeterministic events in such executions can enable deterministic replay. So some researchers are focused on deterministic replay capability in recording important information during executions. In this survey we introduce Hardware-Base, Software-Base and Software-Hardware approaches that have...
متن کاملLessons Learned During the Development of the CapoOne Deterministic Multiprocessor Replay System
Current schemes for deterministic replay of parallel applications can be of great help for programmers. Software-only replay systems, while great at operating at the abstraction of user applications, incur large CPU overheads. Hardwareonly systems produce minimal, if any, CPU overhead, but because their focus is the low-level hardware primitive that records and replays the memory access interle...
متن کاملReTrace: Collecting Execution Trace with Virtual Machine Deterministic Replay
Execution trace is an important tool in computer architecture research. Unfortunately, existing trace collection techniques are often slow (due to software tracing overheads) or expensive (due to special tracing hardware requirements). Regardless of the method of collection, detailed trace files are generally large and inconvenient to store and share. We present ReTrace, a trace collection tool...
متن کاملReplay Debugging for Distributed Applications
We have developed a new replay debugging tool, liblog, for distributed C/C++ applications. It logs the execution of deployed application processes and replays them deterministically, faithfully reproducing race conditions and non-deterministic failures, enabling careful offline analysis. To our knowledge, liblog is the first replay tool to address the requirements of large distributed systems: ...
متن کاملSamsara: Efficient Deterministic Replay in Multiprocessor Environments with Hardware Virtualization Extensions
Deterministic replay, which provides the ability to travel backward in time and reconstruct the past execution flow of a multiprocessor system, has many prominent applications. Prior research in this area can be classified into two categories: hardware-only schemes and software-only schemes. While hardware-only schemes deliver high performance, they require significant modifications to the exis...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006